無責任なデータ放流機(WolfboyDispatcher)作った
概要
これ
WolfboyDispatcher
https://github.com/sassembla/WolfboyDispatcher
何用?
次のような需要があった。
・ネットワークから取得したデータを扱う。データは、基底型を拡張してある型のインスタンスで、型を判別する方法も提供/自作されている。
・データを上流から下流のとあるクラスのインスタンスへと渡したい、のだが、その下流がどんな型を受け取れるかには興味がない
・上流から下流へとデータを流したいが、下流のインスタンスは持ちたくない
・下流では、特定の上流から特定のデータ型だけを受け取りたいが、特に上流のインスタンスとかは持ちたくない
これらの条件が重なったので、それを果たすためのものを作った。
出来上がってみたらこれ型を使ったオブザーバパターン的な何かだ。メッセージングみたいな。
制約
わざと持たせてある制約として、型で上流 -> 下流をセットしあえるようにしてある。
また、型でしか同一性を見ていないので、レシーバ用のクラスのインスタンスを複数作ってレシーバ登録すると、
最後にセットしたReceiverしか意味を為さない。
まあ無秩序にReceiver作られても困るだけだし。あるポイントから同じ型のインスタンスへと拡散させたい場合はその場所にインスタンスいっぱい作って撒いてくれ、っていう。
なのでこいつは、
上流の型 -> 下流の型 へのデータ放流機なわけだ。
名前の由来
データを流す機構ならこのうえなく胡散臭いやつがいいなと思った。